#include "mylabel.h"


// 设置文本
static void set_text(void)
{
    lv_obj_t *label = lv_label_create(lv_scr_act());

    //1.直接设置文本，存储文本的内存动态分配
    lv_label_set_text(label, "hello");

    //2.文本不存储在动态内存，而是在指定的缓冲区中（慎用）
    lv_label_set_text_static(label, "hello");

    //3.格式化显示文本，类似printf
    lv_label_set_text_fmt(label, "hello %d", 5);
}

// 设置背景
static void set_background(void)
{
    lv_obj_t* label = lv_label_create(lv_scr_act());

    lv_label_set_text(label, "hello");
    
    //需要设置背景透明度，否则没用 
    lv_obj_set_style_bg_color(label, lv_color_hex(0xff0000), LV_STATE_DEFAULT);
    
    //透明度0-255 
    lv_obj_set_style_bg_opa(label, 100, LV_STATE_DEFAULT);
}

// 设置字体
// 需要将对应的宏定义打开为真 lv_conf.h
// #define LV_FONT_MONTSERRAT_48 1
// 在makefile中添加
// CSRCS += ./lvgl/src/font/lv_font_montserrat_48.c
static void set_font(void)
{
    lv_obj_t* label = lv_label_create(lv_scr_act());
    lv_label_set_text(label, "hello");

    //注意勿忘&
    lv_obj_set_style_text_font(label, &lv_font_montserrat_48, LV_STATE_DEFAULT);
}

// 设置文件颜色
void set_text_color(void)
{
    lv_obj_t* label = lv_label_create(lv_scr_act());
    //1.普通设置文本颜色
    // lv_obj_set_style_text_color(label, lv_color_hex(0x5084db), LV_STATE_DEFAULT);

    //2.只对文本的一部分进行着色，开启重新着色
    lv_label_set_recolor(label, true);

    //注意书写格式
    lv_label_set_text(label,"he#ff0000 llo#");
}

// 设置模式
void set_mode(void)
{
    lv_obj_t * label = lv_label_create(lv_scr_act());
    lv_label_set_text(label, "hellohellohellohellohellohelloh");
                    
    lv_obj_set_size(label, 100,50);
    lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL);
    // lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);
    // lv_label_set_long_mode(label, LV_LABEL_LONG_CLIP);
}

// 设置图标
void set_icons(void)
{
    lv_obj_t * label = lv_label_create(lv_scr_act());
    lv_label_set_text(label, LV_SYMBOL_WIFI);

    // 做大一点
    lv_obj_set_style_text_font(label, &lv_font_montserrat_48, LV_STATE_DEFAULT);

    // 设置为蓝色
    lv_obj_set_style_text_color(label, lv_color_hex(0x0000ff), LV_STATE_DEFAULT);
}

void mylabel_example(void)
{
    set_icons();
}